<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>

//【示例1】动态改变数组中每个元素的值。

Array.prototype._edit = Array.prototype.edit || 
( Array.prototype.edit = function(){	// 数组元素批处理方法
    var b = arguments, a = [];				// 获取参数，并定义一个临时数组
    this.each( function(){					// 调用迭代器，遍历所有元素
        a.push( b[0].call( b[1], this ) ); 
			// 调用参数函数，把当前元素作为参数传递，执行返回值存储在临时数组中
    });
    return a; 								// 返回临时数组
});
Object.prototype.edit = Array.prototype._edit;

var a = [1, 2, 3, 4] ; 				// 定义数组直接量
var f = function( x ){ 
	// 定义一个元素处理函数，该函数将把每个元素取平方值
    return x * x;
}
var b = a.edit( f ); 	// 调用数组元素编辑方法edit()，并传递将要执行的函数
alert( b ); 			// 返回[1, 4, 9, 16]
//【示例2】过滤数组元素。

Array.prototype._filter = Array.prototype.filter || ( Array.prototype.
filter = function(){				// 过滤数组元素方法
    var b = arguments, a = [];
    this.each( function(){				// 遍历数组
        if( b[0].call( b[1], this ) ) 	// 如果执行参数函数时，返回值为true
        a.push( this ); 					// 则把该元素存储到临时数组中
    });
    return a; 							// 最后返回这个临时数组元素
});
Object.prototype.filter = Array.prototype._filter;

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var f = function( x ){
    if( x > 4 ) return true;
}

var b = a.filter( f ); 		// 调用数组元素过滤方法
alert( b ); 					// 返回[5, 6, 7, 8, 9]

</script>
</head>
<body>




</body>
</html>
